package com.heatingcharge.param;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class ResHouseParam {
    private Integer id;
    /**
     * 房屋编号
     */
    @javax.validation.constraints.NotBlank(message = "房屋编号不可以为空")
    private String num;

    /**
     * 单元id
     */
    @NotNull(message = "单元ID不可以为空")
    @Min(value = 0,message = "单元ID不能小于0")
    private Integer unitId;

    /**
     * 建筑面积
     */
    @Min(value = 0,message = "建筑面积不能小于0")
    private BigDecimal buildArea;

    /**
     * 使用面积
     */
    @Min(value = 0,message = "使用面积不能小于0")
    private BigDecimal useArea;

    /**
     * 供热面积
     */
    @Min(value = 0,message = "供热面积不能小于0")
    private BigDecimal heatArea;

    /**
     * 收费面积
     */
    @Min(value = 0,message = "收费面积不能小于0")
    private BigDecimal chargeArea;

    /**
     * 层高
     */
    @Min(value = 0,message = "层高不能小于0")
    private BigDecimal floorHeight;

    /**
     * 层高系数
     */
    @Min(value = 0,message = "层高系数不能小于0")
    private BigDecimal floorFactor;

    /**
     * 房屋类型 1:民用 2：商用 3：公建
     */
    @Min(value = 0,message = "房屋类型不能小于0")
    private Integer houseType;

    /**
     * 收费类型 1：面积 2：热计量 3：通断
     */
    @Min(value = 0,message = "收费类型不能小于0")
    private Integer chargeType;

    /**
     * 供热状态
     */
    @Min(value = 0,message = "供热状态不能小于0")
    private Integer heatStatus;

    /**
     * 是否入网 0：未入网 1：已入网
     */
//    @Min(value = 0,message = "是否入网不能小于0")
    private Integer activate;

    /**
     * 入网时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date activateTime;

    private String changeReason;

    private String cardNum;
}
